const fs = require("fs");
const JSZIP = require("jszip");
const path = require("path");
const AdmZip = require("adm-zip");
const zip = new JSZIP();
//读取目录及文件
function readDir(obj, nowPath) {
  let files = fs.readdirSync(nowPath); //读取目录中的所有文件及文件夹（同步操作）
  files.forEach(function (fileName, index) {
    //遍历检测目录中的文件
    console.log(fileName, index); //打印当前读取的文件名
    let fillPath = nowPath + "/" + fileName;
    let file = fs.statSync(fillPath); //获取一个文件的属性
    if (file.isDirectory()) {
      //如果是目录的话，继续查询
      let dirlist = zip.folder(fileName); //压缩对象中生成该目录
      readDir(dirlist, fillPath); //重新检索目录文件
    } else {
      obj.file(fileName, fs.readFileSync(fillPath)); //压缩目录添加文件
    }
  });
}

//开始压缩文件
function startZIP() {
  var currPath = __dirname; //文件的绝对路径 当前当前js所在的绝对路径
  var targetDir = path.join(currPath, "files");
  readDir(zip, targetDir);
  zip
    .generateAsync({
      //设置压缩格式，开始打包
      type: "nodebuffer", //nodejs用
      compression: "DEFLATE", //压缩算法
      compressionOptions: {
        //压缩级别
        level: 9,
      },
    })
    .then(function (content) {
      fs.writeFileSync(currPath + "/result.leven", content, "utf-8"); //将打包的内容写入 当前目录下的 result.zip中
    });
}

// startZIP();
//
const jzip = new AdmZip(__dirname + "/result.leven");
jzip.extractAllTo(__dirname+ "/result", true);
// var zipEntries = jzip.getEntries();
// zipEntries.forEach(function(entry){
// 	var entryName = entry.entryName;
// 	// console.log(entryName);
	
// 	var decompressedData = jzip.readFile(entry);
// 	// console.log(decompressedData);
// 	if(~entryName.search('.pdf')){
//         jzip.extractEntryTo(entry, __dirname, true, true)
//     }
// 	if (~entryName.search('.json')) {
//         console.log(jzip.readAsText(entry));   
//     }
// });